package com.hzlj.position.locate.controller;


import com.fz.common.base.core.JsonUtils;
import com.fz.common.base.dto.PageParamDTO;
import com.fz.common.base.dto.QueryPageResultDTO;
import com.fz.common.base.dto.ResultDTO;
import com.fz.common.base.exception.PubException;
import com.hzlj.position.locate.common.dto.amtStatJzryReportAudio.AmtStatJzryReportAudioHandleDTO;
import com.hzlj.position.locate.common.dto.amtStatJzryReportAudio.AmtStatJzryReportAudioQueryParamDTO;
import com.hzlj.position.locate.common.dto.amtStatJzryReportAudio.AmtStatJzryReportAudioQueryResultDTO;
import com.hzlj.position.locate.service.AmtStatJzryReportAudioService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;

/**
 * 【语音汇报-按人按月统计】接口
 *
 * @author makejava
 * @date 2024-09-06 10:49:06
 */
@Slf4j
@RestController
@RequestMapping("/position/report/audio/stat")
public class AmtStatJzryReportAudioController {

    @Resource
    private AmtStatJzryReportAudioService amtStatJzryReportAudioService;


    /**
     * 处理异常
     */
    @PostMapping("/handle")
    public ResultDTO<Boolean> handle(@RequestBody AmtStatJzryReportAudioHandleDTO dto) {
        log.info("语音汇报-按人按月统计-异常处理：{}", JsonUtils.obj2json(dto));
        try {
            this.amtStatJzryReportAudioService.handle(dto);
        } catch (Exception e) {
            log.error("语音汇报-按人按月统计处理失败：{}", JsonUtils.obj2json(dto), e);
            throw new PubException("异常处理失败");
        }
        return ResultDTO.ok();
    }


    /**
     * 处理异常-电话
     */
    @PostMapping("/handle/phone")
    public ResultDTO<Boolean> handlePhone(@RequestBody AmtStatJzryReportAudioHandleDTO dto) {
        log.info("电话汇报-按人按月统计-异常处理：{}", JsonUtils.obj2json(dto));
        try {
            this.amtStatJzryReportAudioService.handlePhone(dto);
        } catch (Exception e) {
            log.error("电话汇报-按人按月统计处理失败：{}", JsonUtils.obj2json(dto), e);
            throw new PubException("异常处理失败");
        }
        return ResultDTO.ok();
    }

    /**
     * 分页查询 语音汇报-按人按月统计
     */
    @GetMapping("/list/page")
    public ResultDTO<QueryPageResultDTO<AmtStatJzryReportAudioQueryResultDTO>> pageAmtStatJzryReportAudio(AmtStatJzryReportAudioQueryParamDTO dto, PageParamDTO pageParamDTO) {
        log.debug("【查询分页列表】信息语音汇报-按人按月统计,AmtStatJzryReportAudioQueryParamDTO={},pageParamDTO={}", dto, pageParamDTO);
        return new ResultDTO<>(amtStatJzryReportAudioService.pageAmtStatJzryReportAudio(dto, pageParamDTO));
    }

}

